/**
 * 
 */
package com.java.test.paymanage.service;

import java.util.List;

import com.java.test.paymanage.dto.OnlinePayInfo;
import com.java.test.paymanage.dto.PayChannelInfo;
import com.java.test.paymanage.dto.PayTypeInfo;
import com.java.test.paymanage.dto.RechargeDiscountInfo;
import com.java.test.paymanage.dto.SkAccountInfo;

/**
 * @author 支付管理
 *
 */
public interface PayManageService {

	/**
	 * 
	 * 支付类型列表
	 * 
	 * @return
	 */
	public List<PayTypeInfo> selectpaytypeList();
	
	
	/**
	 * 修改支付类型状态
	 * @param info
	 * @return
	 */
	public int updatepayTypestatusInfo(PayTypeInfo info);

	/**
	 * 添加支付类型
	 * 
	 * @param info
	 * @return
	 */
	public int insertpayType(PayTypeInfo info);

	/**
	 * 
	 * 更新支付类型
	 * 
	 * @param info
	 * @return
	 */
	public int updatepayType(PayTypeInfo info);
	
	
	/**
	 * 
	 * 更新支付类型
	 * 
	 * @param info
	 * @return
	 */
	public int updatepaysortType(List<PayTypeInfo> info);

	/**
	 * 删除支付类型
	 * 
	 * @param info
	 * @return
	 */
	public int deletepayType(PayTypeInfo info);

	/********** ===支付渠道管理==== ********************/

	/**
	 * 支付渠道列表
	 * 
	 * @param info
	 * @return
	 */
	public List<PayChannelInfo> selectpaychanneList(PayChannelInfo info);

	/**
	 * 添加支付渠道
	 * 
	 * @param info
	 * @return
	 */
	public int insertpayChannelInfo(PayChannelInfo info);

	/**
	 * 更新支付渠道
	 * 
	 * @param info
	 * @return
	 */
	public int updatepayChannelInfo(PayChannelInfo info);

	/**
	 * 删除支付渠道
	 * 
	 * @param info
	 * @return
	 */
	public int deletepayChannelInfo(PayChannelInfo info);
	
	/**
	 * 支付渠道排序
	 * @param info
	 * @return
	 */
	public int updatepayChannelInfosort(List<PayChannelInfo> info);

	/********** ============收款账户管理============= **************/

	/**
	 * 查询收款账户列表
	 * 
	 * @param info
	 * @return
	 */
	public List<SkAccountInfo> selectskaccount(SkAccountInfo info);
	
	
	/**
	 * 收款账户详情
	 * @param info
	 * @return
	 */
	public SkAccountInfo skaccountInfo(SkAccountInfo info);

	/**
	 * 
	 * 添加收款账户
	 * 
	 * @param info
	 * @return
	 */
	public int insertskaccount(SkAccountInfo info);

	/**
	 * 删除收款账户
	 * 
	 * @param info
	 * @return
	 */
	public int deleteskaccount(SkAccountInfo info);

	/***
	 * 更新收款账户
	 * 
	 * @param info
	 * @return
	 */
	public int updateskaccount(SkAccountInfo info);
	
	public int updateskaccountsort(List<SkAccountInfo> info);
	

	/***************** ==充值优惠== *************************/

	/**
	 * 优惠列表
	 * 
	 * @return
	 */
	public List<RechargeDiscountInfo> selectrechargediscountList();

	/**
	 * 添加优惠
	 * 
	 * @param info
	 * @return
	 */
	public int insertrechargediscountInfo(RechargeDiscountInfo info);

	/**
	 * 删除优惠
	 * 
	 * @param info
	 * @return
	 */
	public int deleterechargediscountInfo(RechargeDiscountInfo info);

	/**
	 * 修改优惠
	 * 
	 * @param info
	 * @return
	 */
	public int updaterechargediscountInfo(RechargeDiscountInfo info);

	/**************** ============在线支付管理================= ********************/

	
	
	/**
	 * 查询支付列表
	 * @return
	 */
	public List<OnlinePayInfo> selectonlinepayList();

	/**
	 * 
	 * 添加支付
	 * @param info
	 * @return
	 */
	public int addonlinepayInfo(OnlinePayInfo info);

	/**
	 * 更新在线支付
	 * @param info
	 * @return
	 */
	public int updateonlinepayInfo(OnlinePayInfo info);


	/**
	 * 在线支付管理排序
	 * @param info
	 * @return
	 */
	public int updatesortonlinepayInfo(List<OnlinePayInfo> info);
	
	/**
	 * 
	 * 删除在线支付
	 * @param info
	 * @return
	 */
	public int deleteonlinepayInfo(OnlinePayInfo info);

	/**
	 * @param info
	 * @return
	 */
	public int updateskaccountstatus(SkAccountInfo info);

	/**
	 * 推送消息
	 */
    void payMessagePush();
    
    /**
     * 在线支付启用禁用
     * @param info
     * @return
     */
    public int updatestatusonlinepayInfo(OnlinePayInfo info);

	/**
	 * @return 查询所有银行卡号
	 */
	public List<SkAccountInfo> selectallbankCard();


	/**
	 * @param id
	 * @return
	 */
	public int selectisnotexitSkaccount(int id);
	
	public List<PayChannelInfo> selectpaychannelbypaytypeId(int paytypeid);


	/**
	 * @return
	 */
	List<SkAccountInfo> selectallskAccount();
}
